import service from "./server";
import { BASE_URL } from "../config/index";
/* 调用接口封装
 * @param {string} url 接口地址
 * @param {string} method 请求方式
 * @param {object} data 请求参数
 * @param {string} baseUrl 自定义接口地址
 * @param {string} responseType 返回数据类型
 */
export function requestApi(reqJson) {
  //如果是 doEvent 接口
  let baseUrl = BASE_URL;
  //如果是自定义接口
  if (reqJson && reqJson.baseUrl) {
    baseUrl = reqJson.baseUrl;
  }

  if (reqJson.method == "get") {
    //如果reqJson.data有值，将其转为url参数
    if (reqJson.data) {
      let paramsArray = [];
      //拼接参数
      Object.keys(reqJson.data).forEach((key) =>
        paramsArray.push(key + "=" + reqJson.data[key])
      );
      if (reqJson.url.search(/\?/) === -1) {
        reqJson.url += "?" + paramsArray.join("&");
      } else {
        reqJson.url += "&" + paramsArray.join("&");
      }
    }
    return service({
      url: reqJson.url,
      method: "get",
    });
  }
  // 其他请求方式
  return service({
    url: reqJson.url,
    method: reqJson.method ? reqJson.method : "post",
    data: reqJson.data,
    baseURL: baseUrl,
    //如果是下载文件，需要设置responseType: 'blob'
    responseType: reqJson.responseType ? reqJson.responseType : "json",
  });
}

export default requestApi;
